package utils;

import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;

import modelo.Atributos;
import modelo.Estado;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class LeitorDeXLS {
	private String arquivo;
	private File file;
	private ArrayList<Estado> estados;

	public ArrayList<Estado> lerArquivo(String arquivo, Atributos atributo)
	{
		this.arquivo = arquivo;
		this.file = new File(this.arquivo);
		estados = new ArrayList<Estado>();
		
		int numColunas = 0;
		int numLinhas  = 0;
		String conteudoCelula = "";
		Workbook w;
		Sheet sheet;
		try 
		{
			w = Workbook.getWorkbook(this.file);
			sheet = w.getSheet(1);
		} 
		catch (Exception e)
		{
			e.printStackTrace();
			return null;
		}
		
//		numLinhas = sheet.getRows();
		numLinhas = 28;
		numColunas = sheet.getColumns();
		
		ArrayList<String> tituloColuna = new ArrayList<String>();
		
		//if(Debug.isDebug()) System.out.println(" ====================================================================================================================================================");
		
		for (int i = 0; i < numLinhas; i++) 
		{
			if(i==0)
			{ 
				for (int j = 0; j < numColunas; j++) 
				{
					Cell cell = sheet.getCell(j, i);
					conteudoCelula = cell.getContents();
					tituloColuna.add(conteudoCelula);
					//if(Debug.isDebug()) System.out.print(conteudoCelula+ "    ");
		    	}
			}
			else
			{ 
				String nome, sigla;
				Cell cell = sheet.getCell(0, i);
				nome = cell.getContents();
				cell = sheet.getCell(1, i);
				sigla = cell.getContents();
				
				Estado estado = new Estado(nome, sigla);
				
				
//				if(Debug.isDebug()) System.out.print(nome + "    ");
//				if(Debug.isDebug()) System.out.print(sigla + "    ");
				
				for (int j = 2; j < numColunas; j++) 
				{
					cell = sheet.getCell(j, i);
					conteudoCelula = cell.getContents();
					atributo.getAtributosGerais().get(j-2).add(conteudoCelula);
					estado.getTituloColunas().add(tituloColuna.get(j));
					estado.getDados().add(conteudoCelula);
					//if(Debug.isDebug()) System.out.print(estado.getDados().get(j-2)+ "    ");
					
				}
				estados.add(estado);
				
			}
			//if(Debug.isDebug()) System.out.println("");
		}
		//if(Debug.isDebug()) System.out.println(" ====================================================================================================================================================");
		
		return estados;
	}
	
	public void setEstados(ArrayList<Estado> estados){
		this.estados = estados;
	}
	public ArrayList<Estado> getEstados(){
		return this.estados;
	}
	
}

